In traditional database architectures, data is stored in database tables. Additionally, structures such as indexes are created for improved query performance.
When a query is received, the database tables are searched for matching results. Instead of having to read every record in a database table to search for matches, which can take a significant amount of time especially for large tables, indexes may be used to reduce the search time for identifying records matching the query.
Indexing is a way of sorting records on a field or multiple fields. Creating an index on a field in a database table creates another data structure which may hold, for each field value, a pointer that points to its related record. The index is sorted, so a faster search can be performed on the index, which typically does not require accessing every record stored in the database table.